#include <cstdio>
#include <stdexcept>

int get(int (&arr)[10], size_t index) {
  if (index >= 10) {
    throw std::out_of_range("Index out of range");
  }
  return arr[index];
}

// 改进:
template <typename T, size_t N> T &get(T (&arr)[N], size_t index) {
  if (index >= N) {
    throw std::out_of_range("Index out of range");
  }
  return arr[index];
}

int main(int argc, char **argv) {
  // 使用模板函数 get
  char str[]{"Hello, world!!!!!!"};
  printf("%c\n", get(str, 11)); // 输出 d
  return 0;
}
